Was ist eine gute Grafik?

Darstellung von David McCandless in Knowledge is Beautiful (2014).

Informationen

  • Integrität der Datenquelle
  • Integrität der Darstellung

Manipulation von Achsen

Beispiel aus der Einführung nehmen, aber Achse Cutten und oder nicht bei Null starten lassen. Dann eine weirde Message schreiben! Am besten etwas mit hohen nominalen Zahlen. Vielleicht etwas das sich über die Jahre verbessert hat? Dann alternativen zeigen, z.B. Ranzoomen!

https://www.data-to-viz.com/caveat/cut_y_axis.html

Manipulation des Bildformats

set.seed(42)
my_weight <- data.frame(
  month = factor(c("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"),
    levels = c("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"),
    ordered = TRUE
  ),
  weight = rnorm(12, 90, 5) / 1000,
  group = rep(1, 12)
)

ggplot(
  my_weight,
  aes(x = month, y = weight, group = group)
) +
  geom_point() +
  geom_line() +
  labs(
    title = "Mein Gewicht 2024",
    subtitle = "In metrischen Tonnen",
    x = "Monat",
    y = "Gewicht in t"
  ) +
  ylim(0, 1000) +
  theme_bg() +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))

Election Plot

https://storymaps.arcgis.com/stories/0e636a652d44484b9457f953994b212b Vielleicht mit Bundestagswahl?

Fehlender Kontext

gapminder_2020 <- gapminder_dat_full %>%
  filter(time == 2020) %>%
  arrange(desc(co2_cons))

ggplot(
  gapminder_2020[1:10, ],
  aes(x = reorder(country, co2_cons), y = co2_cons)
) +
  geom_bar(stat = "identity", width = 1, color = "black", fill = "#208C7A") +
  theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
  labs(
    title = "China burns the most CO2!",
    subtitle = "Total CO2 consumption in the biggest emmiting countries"
  ) +
  theme_bg()

gapminder_2020 <- gapminder_dat_full %>%
  filter(time == 2020) %>%
  arrange(desc(co2_pcap_cons))

ggplot(
  gapminder_2020[1:10, ],
  aes(x = reorder(country, co2_pcap_cons), y = co2_pcap_cons)
) +
  geom_bar(stat = "identity", width = 1, color = "black", fill = "#208C7A") +
  theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
  labs(title = "CO2 consumption per capita in the biggest emmiting countries") +
  theme_bg()

Fehlender Kontext

Haushalt so groß wie nie

Story

Goal

Darstellung von Größen

Die Größe von Kreisen einzuschätzen ist schwer!

Das gleiche gilt für Winkel!

Versuche, die Größen zu sortieren:

Nützlichkeit

“Design is a requirement, not a cosmetic addition.” nature methods

Foto von Kelly Sikkema auf Unsplash

Foto von Yucel Moran auf Unsplash

Funktionelles Design

Welche Funktion?

Foto von BVG

Foto von BVG

Dabei kann es helfen, sich von bereits vorhandenen Plots inspirieren zu lassen.
Handschriftliche Skizze ist auch erstmal hilfreich!

Simplify to clarify

  • Redundanzen Reduzieren
  • Fokus auf das Wesentliche https://www.data-to-viz.com/caveat/declutter.html

Visual Form

Beispiel von einem komplexen Plot bringen, den wir schon erzeugt haben, und dann reduzieren!

Salienz von Informationen

https://www.nature.com/articles/nmeth1010-773

Farben

Foto von Efe Kurnaz auf Unsplash

Farbwahrnehmung beim Menschen

Zapfen

  • Vergleich Mensch und ein Tier (Siehe mein Buch)

Diskrete Farben vs. Farbverläufe

  • Vor allem für diskrete Gruppen geeignet
  • Farbverläufe schwieriger (aber es gibt color scales dafür)

Zu merken

  1. Unterscheidbar, aber ähnlich genug, um keinen Bias zu erzeugen.

1. Unterscheidbar, aber ähnlich

Wie unten machen, aber mit den Balkendiagrammen ::: {.columns} :::{.column widht=“50%}

:::

:::

Unterschiedlich, aber ähnlich

Color Blindness

  • Take the above scale and show that it is not great for color blindness
  • https://www.color-blindness.com/coblis-color-blindness-simulator/

Farbe ist relativ

Beispiel: Grautöne vs Rottöne

Bild von Nature Methods.

Farbe ist relativ

Fragen: Warum ist das noch eine schelchte Color scale?

Siehe Colblindor.

  library(colorblindcheck)
palette_check(theme_colors_red, plot = TRUE)  
          name n tolerance ncp ndcp min_dist mean_dist max_dist
1       normal 6   4.95969  15   15 4.959690  19.65649 41.78456
2 deuteranopia 6   4.95969  15   15 5.428903  19.54489 42.55279
3   protanopia 6   4.95969  15   14 3.976233  19.39475 41.15790
4   tritanopia 6   4.95969  15   15 5.557603  19.68098 40.93915

Das kann man sich natürlich auch zu Nutze machen (Passt aber vielleicht eher zu space? -> da nochmal zeigen, hier die Punkte enger zusammen )

Nicht zu viele!

Color for coding a third dimension

  • Wie viel macht sinn?
  • Scatterplot

Farben

Ganglienzellen übertragen keine Informationen über absolute Helligkeit, sondern über relative Helligkeit. ‣ Wie stark unterscheiden sich zwei Bereiche in ihrer Helligkeit? ‣ Wie stark hat sich eine Helligkeit gerade geändert? Allgemeine Lehre daraus: ‣ Visualisierung kann nicht gut darin sein, absolute Werte zu kommunizieren (Tabellen können das besser) ‣ Hingegen ist das visuelle System (und das Gehirn allgemein) extrem gut darin, Unterschiede und Veränderungen zu erkennen –> Beispiel bringen (Simultankontrast)

  • Graustufen nicht für absolute oder kategorische Werte nutzen (mehr als vier können iwr nicht gut unterscheiden)
  • Welche Farben wir wahrnehmen können (Exkurs Tierwelt? -> Siehe mein Tierbuch)
  • Diese Webseite zur Auswahl von passenden Farben nutzen?
  • RGB erklären (und die Addition im Gehirn?

Farbfehlsichtigkeiten

Farbsehtests

  • Farbwahrnehmung braucht Helligkeit und Fläche

Anwendung in ggplot2: Farbskalen wählen

  • palettteer
  • https://r-graph-gallery.com/color-palette-finder

Viele Möglichkeiten

  • pakete
  • Selbst stezten

Übung

Baue eine eigene Color-Palette und wende sie auf deinen Plot an. Achte dabei auf Unterscheidbarkeit (Auch color blind), aber auch auf Design.

Gruppieren

Verteilungen Plotten

Eine Grafik ist kann nur einen Teil der Zusammenhänge darstellen

Im Schlechtesten Fall für Manipulation nutzbar

Black swann

Was mögt ihr an dieser Grafik/nicht?

Plot-Typen

Choosing the correct plot

https://www.data-to-viz.com/

Pulikum

Geschichte

  • Gleiche sache auf verschiedene Arten darstellen -> was wirkt am meisten?

Purpose

  • Exploratory vs. Explanatory
  • Kann oft über reines Zeigen der Daten hinausgehen.

Size

Also include population size in the scatterplot

Tufte

  • So wenig Tinte wie möglich nutzen
  • Alles nicht essentielle entfernen
  • Redundanzen entferenen

Beispiel zeigen: Eins ist aufgeblasen, man braucht Zeit zur Orientierung. Ein anderes theme_tufte

Data-ink ratio

Beispiel zum Minimieren zeigen - Raincloud plots

Caveats

https://www.data-to-viz.com/caveats.html

Immer einen Plot zeigen, dann zusammen überlgen was daran schlecht ist, was verbessert werden kann.

Takeaways

  • Kommunizieren von der größtmöglichen Anzahl von Ideen in kürzester Zeit.
  • Maximieren von Data-ink ratio
  • Minimieren von Chart-junk
  • Erhöhe Datendichte, Vervielfältige kleine Versionen der Abbildung für verschiedene Gruppen

Caveat Plots: See data to viz

Storytelling

Rolfs 7

Using Text/Annotations

Nutzen von Eigenschaften der Wahrnehmung

  • Bewusste Wahrnehmung ignoriert Informationen und fügt hinzu
  • Nähe
  • Salienz (Farbe, Größe, Neigung) (Szafir, Haroz, Gleicher & Franconeri (2016))
  • Hier würde das USA Bild passen (evtl. mit einem anderen Beispiel, das den Unterschied deutlich macht, z.B. keine andere Farbe, näher dran durch andere Achse)
  • Harold et al., 2016: Lenken von Aufmerksamkeit
  • Nothelfer et al., 2017: Redundatne Kodierung führt zu deutlich höherer Genauigkeit der Antworten und kürzeren Reaktionszeiten

Übung

Schlechte Grafiken verbessern: https://www.data-to-viz.com/caveats.html